#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//#include<stdio.h>
////int main()
////{
////	printf("%s\n", __FILE__);
////	printf("%d\n", __LINE__);
////	printf("%s\n", __DATE__);
////	printf("%s\n", __TIME__);
////	/*printf("%s\n", __STDC__);*/
////	return 0;
////}
//#define SQUARE(n) n*n
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = SQUARE(n);
//	printf("%d", ret);
//	return 0;
//}
//
//
////#define Printf(n,format) printf("the value of %s is %d",format,n)
////int main()
////{
////	int a = 5;
////	int b = 20;
////	float f = 5.6f;
////	Printf(a, int);
////	return 0;
////}
//#define Printf(n,format)     printf("the value of "#n " is "format"\n",n)
//int main()
//{
//	int a = 1;
//	int b = 20;
//	float f = 5.6f;
//	Printf(a,"%d");
//	/*printf("the value of a is %d\n", a);
//	printf("the value of b is %d\n", b);
//	printf("the value of f is %f\n", f);*/
//	/*printf("the value of a is" "i am your yeye");*/
//
//	return 0;
//
//}

#define  GENERIC_MAX(type)   \
          type type##_MAX(type x,type y)\
           {    \
           return x>y?x:y; \
            }
GENERIC_MAX(int);
GENERIC_MAX(float);
int main()
{
	int n = int_MAX(3, 4);
	float m = float_MAX(3.1f, 4.4f);
	printf("%d\n", n);
	printf("%f\n", m);
	return 0;
}